<?php 

/**
 * Classe que engloba métodos de persistência e consultas relacionadas ao 
 * modulo de frequencia
 */
class DaoFrequencia {
	
	/**
	 * Retorna ID, Nome, CPF, Laboratório e turno dos bolsista de um determinado
	 *  coordenador
	 */
	public function getBolsistas($coordenador_uid) {
		$sql = "	select a.id, a.nome, a.cpf, l.nome as laboratorio, t.turno 
								from aluno as a 
								inner join coordenador_aluno as c 
								inner join laboratorio as l 
								inner join lotacao as t 
								where c.coordenador_id = ". $coordenador_uid ." 
								and a.id = c.aluno_id 
								and l.id = t.laboratorio_id 
								and a.id = t.aluno_id;";
		
		$query = db_query($sql)->fetchAll();
		
		$turnos = array(0 => 'Manhã', 1 => 'Tarde', 2 => 'Noite');
		
		$bolsistas = array();
		foreach($query as $row) {
			$bolsista = new stdClass();
			$bolsista->id = $row->id;
			$bolsista->nome = $row->nome;
			$bolsista->cpf = $row->cpf;
			$bolsista->laboratorio = $row->laboratorio;
			$bolsista->turno = $turnos[$row->turno];
			
			array_push($bolsistas, $bolsista);
		}
		
		return $bolsistas;
	}
	
	//
	// <begin> Operações relacionadas ao Ponto do Aluno </begin>
	//
	
	/**
	 * registra a ocorrencia do ponto de um aluno
	 */
	public function registraPonto($ponto) {
		drupal_write_record('frequencia', $lotacao);
	}
	
	/**
	 * atualiza a ocorrencia do ponto de um aluno
	 */
	public function atualizaPonto($ponto) {
		drupal_write_record('frequencia', $lotacao, array('id'));
	}
	
	/**
	 * retorna a ocorrencia do ponto de um aluno
	 */
	public function getPonto($dia) {
		$query = db_select('frequencia')
						->fields('frequencia')
						->condition('dia', $dia)
						->execute()->fetchAll();
		
		$ponto = new stdClass();
		foreach($query as $row) {
			$ponto->id = $row->id;
			$ponto->aluno_id = $row->aluno_id;
			$ponto->dia = $row->dia;
			$ponto->frequencia = $row->frequencia;	
			$ponto->homologado = $row->homologado;
		}
		
		return $ponto;
	}
	
	/**
	 * lista os pontos do mes de um determinado aluno
	 */
	public function listPonto($aluno_id) {
		$inicio_mes = getInicioMes(date('m'), date('Y'));
		$fim_mes = getFimMes(date('m'), date('Y'));
		
		$sql = "select * from frequencia where aluno_id = ". $aluno_id .
					 " and dia >= " . $inicio_mes . 
					 " and dia <= " . $fim_mes;
		
		$query = db_query($sql)->fetchAll();
		
		$pontos = array();
		foreach($query as $row) {
			$ponto = new stdClass();
			$ponto->id = $row->id;
			$ponto->aluno_id = $row->aluno_id;
			$ponto->dia = $row->dia;
			$ponto->frequencia = $row->frequencia;
			$ponto->homologado = $row->homologado;
			
			array_push($pontos, $ponto);
		}
		
		return $pontos;
	}

	//
	// <end> Operações relacionadas ao Ponto do Aluno </end>
	//
		
	/**
	 * Adiciona uma lotacao (aluno em um laboratorio)
	 */
	public function addLotacao($lotacao) {
		drupal_write_record('lotacao', $lotacao);	
	}
	
	//
	// <begin> Operações relacionadas ao Vinculo do Aluno </begin>
	//	
	
	/**
	 * adiciona um vinculo (coordenador vinculado ao aluno)
	 */
	public function addVinculo($vinculo) {
		drupal_write_record('coordenador_aluno', $vinculo);
	}
	
	/**
	 * remove um vinculo (coordenador vinculado ao aluno)
	 */
	public function rmVinculo($aluno_id) {
		db_query("delete from coordenador_aluno where aluno_id = " . $aluno_id)->execute();
		db_query("delete from lotacao where aluno_id = " . $aluno_id)->execute();
	}
	
	//
	// <end> Operações relacionadas ao Vinculo do Aluno </end>
	//
	
}